﻿using System.Drawing;
using System.Windows.Forms;
using SudokuHelper.Appearance;
using SudokuHelper.Model;

namespace SudokuHelper.Views {
    public interface ICellView {
        /// <summary>
        /// View location
        /// </summary>
        Point Location { set; }

        /// <summary>
        /// View size
        /// </summary>
        Size Size { set; }

        /// <summary>
        /// Desk
        /// </summary>
        ISudokuDesk Desk { set; }

        /// <summary>
        /// Gets or sets value indicating whether cell is selected
        /// </summary>
        bool IsSelected { get; set; }

        /// <summary>
        /// Gets or sets value indicating whether cell shows erroneous value
        /// </summary>
        bool IsErroneous { get; set; }

        /// <summary>
        /// Gets or sets a cell hint value
        /// </summary>
        string ErrorValue { get; set; }

        /// <summary>
        /// Event raises when cell was selected
        /// </summary>
        event MouseEventHandler MouseClick;

        /// <summary>
        /// Gets a default appearance of a cell
        /// </summary>
        CellAppearance AppearanceDefault { get; }

        /// <summary>
        /// Gets an appearance of selected cell
        /// </summary>
        CellAppearance AppearanceSelected { get; }

        /// <summary>
        /// Gets an appearance of erroneous cell
        /// </summary>
        CellAppearance AppearanceError { get; }
    }
}
